import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.volcengine.ark.runtime.model.completion.chat.ChatCompletionContentPart;
import com.volcengine.ark.runtime.model.completion.chat.ChatCompletionRequest;
import com.volcengine.ark.runtime.model.completion.chat.ChatMessage;
import com.volcengine.ark.runtime.model.completion.chat.ChatMessageRole;
import com.volcengine.ark.runtime.service.ArkService;
import okhttp3.ConnectionPool;
import okhttp3.Dispatcher;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;


// 请确保您已将 API Key 存储在环境变量 ARK_API_KEY 中
// 初始化Ark客户端，从环境变量中读取您的API Key
public class ChatCompletionsVisionExample {
    // 从环境变量中获取您的 API Key。此为默认方式，您可根据需要进行修改
//    static String apiKey = System.getenv("16a455a1-c27d-4f67-9768-a6b7089cf810");
    // 此为默认路径，您可根据业务所在地域进行配置
    static String baseUrl = "https://ark.cn-beijing.volces.com/api/v3";
    static ConnectionPool connectionPool = new ConnectionPool(5, 1, TimeUnit.SECONDS);
    static Dispatcher dispatcher = new Dispatcher();
    static ArkService service;

    public static void main(String[] args) {
        service = ArkService.builder().dispatcher(dispatcher).connectionPool(connectionPool).baseUrl(baseUrl).apiKey("71f4285c-af6b-48f2-a02c-bffa4aa96fec").build();

//        byte[] bytes = HttpUtil.downloadBytes("https://img2.baidu.com/it/u=3946513537,3753906297&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1200");
        String s ="https://www.50ak.com/api/dev/file/download?id=1915219708013223937";
//        s= FileUtil.readString("/Users/weixin/work/project/self/square-lake/square-lake-app/src/test/java/ss.text", Charset.defaultCharset());
        System.out.println("----- image input -----");
        final List messages = new ArrayList<>();
        final List multiParts = new ArrayList<>();
        multiParts.add(ChatCompletionContentPart.builder().type("image_url").imageUrl(
                new ChatCompletionContentPart.ChatCompletionContentPartImageURL(
                     s,
                        "high"
                )
        ).build());
        DateTime date = DateUtil.date();


        multiParts.add(ChatCompletionContentPart.builder().type("text").text(
                "我的名字叫胡逸,我的手机号是17323070652,我的出生日期是1994-08-25,我的出生时间是18:30,我的性别是男,我出生时的体重时、是6.7,今天是阳历2025-04-24 09:42:19，温度25度,天气，你是一个熟度麻衣相法,水镜神相,熟知周易，易经，八字命理，四柱预测，紫微斗数，排大运，六爻预测，风水命理，十二时辰(吉凶)推断法,相术，梅花易数，奇门遁甲，太乙神数，卜筮,易卦，梅花易数,占梦，铁板神数，占星术，五行术，堪舆术，谶语，拆字，六壬，，铁版神数，塔罗牌，哲学思考等的国家民族文化研究者,你非常尊重并热爱科学，你需要对传统算命相学等进行研究，并形成报告.请根据图中的人或者物从细节上总结出各个特征，再结合今天的日期天气时代,详细解释每一个指标，并说出今天的运势，字数不应该少于800字"
        ).build());

        final ChatMessage userMessage = ChatMessage.builder().role(ChatMessageRole.USER)
                .multiContent(multiParts).build();
        messages.add(userMessage);

        ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
                // 指定您创建的方舟推理接入点 ID，此处已帮您修改为您的推理接入点 ID
                .model("doubao-1.5-vision-pro-250328")
                .messages(messages)
                .build();

        service.createChatCompletion(chatCompletionRequest).getChoices().forEach(choice -> System.out.println(choice.getMessage().getContent()));

        service.shutdownExecutor();
    }
}